package main

import ("fmt"
)

func main(){       //主函数
		//定义数组：var 数组名【数组的长度】数据类型
		var arr [3]int
		//获取数组的长度
		fmt.Println(len(arr))
	//打印数组
	fmt.Println(arr)
	//打印数组的地址
	fmt.Printf("arr的地址是,%p \n",&arr)
	fmt.Printf("arr[0]的地址是，%p \n",&arr[0])
	//数组的赋值
	arr[0] = 1
	arr[1] = 2
	arr[2] = 3
	fmt.Println(arr)
	//数组的类型(数组的长度是类型的一部分)   【3】int
	fmt.Printf("arr的类型是:%T \n",arr)
	//数组的四种初始化方式
	//第一种：
	var arr1 [3]int = [3]int{3,5,2}
	fmt.Println(arr1)

	//第二种：
	var arr2 = [3]int{4,6,2}
	fmt.Println(arr2)

	//第三种：三个点表示这个数组的长度是可变的
	var arr3 = [...]int{1,2,3,4,6}
	fmt.Println(len(arr3))

	//第四种：
	var arr4 = [...]int{2:66,1:33,0:88}
	fmt.Println(arr4)

	arr := [3]int{3,5,2}
	fmt.Println(arr5)

	// //字符串遍历
	// //方式一：for range
	// //使用for range 遍历str1
	for i,value := range str1 {
		fmt.Printf("索引为，%d,具体的值为:%c \n",i,value)

	// //方式二
	r := []rune(str1)
	for i := 0 ; i < len(r) ; i++ {
		fmt.Printf("%c \n",r[i])
	}

	var sum int = 0
	for i := 0; i < 10; i++ {
        sum += i
    }
    fmt.Println("The sum is:", sum)
	//注意：for循环实际就是提高程序员写带代码的效率，但是底层该怎么执行就怎么执行，不会提高运行效率。

	//数组的遍历
	//方式一：for循环（现在这个i就相当于数组的下标）
	for i := 0 ; i <len(arr5) ; i++{
		fmt.Print(arr5[i])
	}
	fmt.Println()
	fmt.Println("----------------------")


	for _,value := range arr5 {
		fmt.Print(value)
	}
}

